@file:Suppress("UNCHECKED_CAST")

package com.virtualightning.core.processor.adapter.anno

/**
 *  Anchor : Create by CimZzz
 *  Time : 2021/11/22 17:40
 *  ViewHolder 事件绑定器
 */
abstract class ViewHolderEventBinder<T, E> {
	/**
	 * 在类内部进行模板类型转换，然后调用处理方法
	 * @param instance Any 实例
	 * @param command E 指令
	 */
	fun handleCommand(instance: Any, command: E) {
		handleAdapterCommand(instance as T, command)
	}

	/**
	 * 触发事件回调接口
	 * @param instance T 所依附的实例
	 * @param command E Adapter 命令
	 */
	abstract fun handleAdapterCommand(instance: T, command: E)
}